package Model.Dominio;

import java.util.List;

// <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
// #[regen=yes,id=DCE.55135A07-31A8-CB2D-8F1E-109C9314E6DD]
// </editor-fold> 
public class Servicio {

    private Vehiculo asignado;
    private List<Parada> ruta;
    private Factura factura;
    private Contrato contrato;
    private int numeroDelServicio;

    public Servicio(Vehiculo asignado, Factura factura, Contrato contrato, int numeroDelServicio) {
        this.asignado = asignado;
        this.factura = factura;
        this.contrato = contrato;
        this.numeroDelServicio = numeroDelServicio;
        this.estadoDelServicio = true;
    }
    private boolean estadoDelServicio;

    public Servicio() {
    }

    public void agregarParada(Parada parada) {
        ruta.add(parada);
    }

    public Parada getParada(Parada parada) {
        for (Parada parada1 : ruta) {
            if (parada1.getNumeroDeLaParada() == parada.getNumeroDeLaParada()) {
                return parada1;
            }
        }
        return null;
    }

    public void removerParada(Parada parada) {
        ruta.remove(parada);
    }

    /**
     * @return Retorna el estado del servicio
     * retorna true si esta activo y false si
     * ya finalizo
     */
    public boolean isEstadoDelServicio() {
        return estadoDelServicio;
    }

    /**
     * @param estadoDelServicio the estadoDelServicio to set
     */
    public void setEstadoDelServicio(boolean estadoDelServicio) {
        this.estadoDelServicio = estadoDelServicio;
    }

    /**
     * @return the asignado
     */
    public Vehiculo getAsignado() {
        return asignado;
    }

    /**
     * @param asignado the asignado to set
     */
    public void setAsignado(Vehiculo asignado) {
        this.asignado = asignado;
    }

    /**
     * @return the factura
     * esto lo tengo que modificar no puedo retorna el objeto factura completo
     */
    public Factura getFactura() {
        return factura;
    }

    /**
     * @param factura the factura to set
     */
    public void setFactura(Factura factura) {
        this.factura = factura;
    }

    /**
     * @return the contrato
     * modificar no puedo retornar el objeto contrato completo
     */
    public Contrato getContrato() {
        return contrato;
    }

    /**
     * @param contrato the contrato to set
     */
    public void setContrato(Contrato contrato) {
        this.contrato = contrato;
    }

    /**
     * @return the numeroDelServicio
     */
    public int getNumeroDelServicio() {
        return numeroDelServicio;
    }

    /**
     * @param numeroDelServicio the numeroDelServicio to set
     */
    public void setNumeroDelServicio(int numeroDelServicio) {
        this.numeroDelServicio = numeroDelServicio;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Servicio other = (Servicio) obj;
        if (this.numeroDelServicio != other.numeroDelServicio) {
            return false;
        }
        return true;
    }
}
